﻿using System.IO;
using FarmerJoe.Settings;
using Styx.Helpers;

namespace FarmerJoe.ClassSettings
{
    public class HunterSettings : Styx.Helpers.Settings
    {
        public HunterSettings() : base(Path.Combine(FpswareSettings.SettingsPath, "Hunter.xml")) { }

        [Setting, DefaultValue("... never")]
        public string ForceFacingTarget { get; set; }

        [Setting, DefaultValue(45)]
        public int RestHealth { get; set; }

        [Setting, DefaultValue("... always")]
        public string CCControlledMovement { get; set; }

        [Setting, DefaultValue("... always")]
        public string CCControlledTargeting { get; set; }

        [Setting, DefaultValue("... always")]
        public string WaitForResSickness { get; set; }

        [Setting, DefaultValue("... always")]
        public string AllowLagTollerance { get; set; }

        [Setting, DefaultValue("... never")]
        public string TimeToDeathCheck { get; set; }

        [Setting, DefaultValue("... never")]
        public string Trinket1 { get; set; }

        [Setting, DefaultValue("... never")]
        public string Trinket2 { get; set; }

        [Setting, DefaultValue("... never")]
        public string AspectOfTheCheetah { get; set; }

        [Setting, DefaultValue("25")]
        public string AspectOfTheCheetahMinDistance { get; set; }
        

        [Setting, DefaultValue(45)]
        public int HealthPotionHealth { get; set; }

        [Setting, DefaultValue("... never")]
        public string PetFetch { get; set; }



        #region Beast
        
        [Setting, DefaultValue("... automatic")]
        public string BeastMasteryPull { get; set; }

        [Setting, DefaultValue(50)]
        public int BeastArcaneShotFocus { get; set; }

        [Setting, DefaultValue("... conditional")]
        public string BeastWyvernSting { get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string BeastWyvernStingWhen { get; set; }

        [Setting, DefaultValue("... ignore target")]
        public string BeastWyvernStingPetAggro { get; set; }

        [Setting, DefaultValue("... conditional")]
        public string BeastScatterShot { get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string BeastScatterShotWhen { get; set; }

        [Setting, DefaultValue("... ignore target")]
        public string BeastScatterShotPetAggro { get; set; }

        [Setting, DefaultValue("... conditional")]
        public string BeastFreezingTrap{ get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string BeastFreezingTrapWhen { get; set; }

        [Setting, DefaultValue("... ignore target")]
        public string BeastFreezingTrapPetAggro { get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string BestialWrath { get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string DireBeast { get; set; }

        [Setting, DefaultValue("... only on 3+ adds")]
        public string Stampede { get; set; }

        [Setting, DefaultValue("... always")]
        public string MastersCall { get; set; }

        [Setting, DefaultValue("... always")]
        public string KillCommand { get; set; }

        [Setting, DefaultValue("... only on 3+ adds")]
        public string MultiShot { get; set; }

        [Setting, DefaultValue("5")]
        public string FocusFire { get; set; }

        [Setting, DefaultValue("... always")]
        public string SerpentSting { get; set; }

        [Setting, DefaultValue("... always")]
        public string SerpentStingAdds { get; set; }

        [Setting, DefaultValue(45)]
        public int SerpentStingMinHealth { get; set; }

        [Setting, DefaultValue("... only if approaching")]
        public string ConcussiveShot { get; set; }

        [Setting, DefaultValue("... if target is casting or fleeing")]
        public string Intimidation { get; set; }

        [Setting, DefaultValue("... always")]
        public string SilencingShot { get; set; }

        [Setting, DefaultValue("... always")]
        public string BlinkStrike { get; set; }

        [Setting, DefaultValue("... always")]
        public string DistractingShot { get; set; }

        [Setting, DefaultValue("... only if target is player")]
        public string WidowVenom { get; set; }

        [Setting, DefaultValue("... always")]
        public string HuntersMark { get; set; }

        [Setting, DefaultValue(50)]
        public int ExhilarationHealth { get; set; }

        [Setting, DefaultValue(30)]
        public int DeterrenceHealth { get; set; }

        [Setting, DefaultValue("... conditional")]
        public string FeignDeath { get; set; }

        [Setting, DefaultValue(40)]
        public int FeignDeathHealth { get; set; }

        [Setting, DefaultValue("... always")]
        public string FeignDeathDisengage { get; set; }

        [Setting, DefaultValue("... never")]
        public string Disengage { get; set; }

        [Setting, DefaultValue("Call Pet 1")]
        public string PetSlot { get; set; }

        [Setting, DefaultValue(80)]
        public int PetAbilityCowerHealth { get; set; }

        [Setting, DefaultValue("... always")]
        public string PetAbilityCowerWhen { get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string PetAbilityRabid { get; set; }

        [Setting, DefaultValue("... only if target is player")]
        public string PetAbilityRoarOfSacrifice{ get; set; }

        [Setting, DefaultValue(45)]
        public int PetAbilityLastStandHealth { get; set; }

        [Setting, DefaultValue("... conditional")]
        public string PetSpecialAbilities { get; set; }

        [Setting, DefaultValue(80)]
        public int MindPetHealth { get; set; }

        [Setting, DefaultValue(30)]
        public int ExhilarationPetHealth { get; set; }

        [Setting, DefaultValue("... always")]
        public string Powershot { get; set; }

        [Setting, DefaultValue(80)]
        public int PowershotHealth { get; set; }

        [Setting, DefaultValue("... always")]
        public string GlaiveToss { get; set; }


        [Setting, DefaultValue("... conditional")]
        public string Readiness { get; set; }

        [Setting, DefaultValue("... always")]
        public string ReadinessExhilaration { get; set; }

        [Setting, DefaultValue("... never")]
        public string ReadinessRapidFire{ get; set; }

        
        [Setting, DefaultValue("... only on 3+ adds")]
        public string RapidFire { get; set; }



        #endregion


        #region Marks

        [Setting, DefaultValue("... automatic")]
        public string MarksPull { get; set; }


        #endregion


        #region Survival
        [Setting, DefaultValue("... automatic")]
        public string SurvivalPull { get; set; }

        #endregion

    }
}
